Method and apparatus for increasing survivability in ip networks

ABSTRACT

A method and apparatus for increasing the capability of a network topology model having a plurality of nodes connected by existing links to maintain service continuity in the presence of faults. The steps of the method include adding new links to the network topology model to protect against single node failures, and adjusting link weights for the network topology model to reduce at least one of a cost of network operation and an imbalance in link utilizations. Preferably, the link weights are adjusted to reduce the imbalance in link utilizations without deteriorating the cost of network operation. The link weights are preferably adjusted to reduce the cost of network operation without increasing the imbalance in link utilizations. Preferably, the link weights are adjusted to reduce the cost of network operation without increasing the imbalance in link utilizations while keeping the utilization for each link below a specific threshold. In addition, links can be added to the network topology model to reduce the cost of network operation.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority to U.S. Non-Provisional applicationSer. No. 10/805,643 filed on Mar. 19, 2004, the contents of which areincorporated by reference herein.

FIELD OF THE INVENTION

The present invention relates generally to communication systems and,more particularly, to methods for analyzing and reducing the cost ofsurvivability in IP networks while considering link weights, linkutilization, and adding links to the network topology.

BACKGROUND OF THE INVENTION

Survivability has been defined as “the capability of a network tomaintain service continuity in the presence of faults.” D. Awduche, A.Chiu, A. Elwalid, 1. Widjaja, and X. Xiao, “Overview and Principals ofInternet Traffic Engineering,” Re-quest for Comments (Informational) RFC3272, Internet Engineering Task Force, May 2002. Since the Internet hasbecome a key for communications and commerce in the world today, networksurvivability has assumed great importance. Networks need to be designedso that connectivity is maintained in the face of failures in thenetwork. Links have to be provisioned so that there is sufficientcapacity to carry the additional network traffic coming their way in theevent of failures. Protecting the service quality (minimally assuringavailability of capacity) in the face of network failures requiresredundant resources (over what is required for failure free operation)which increases the cost of network operation.

Accordingly, there is a need for methods to evaluate the extra cost ofsurvivability and to reduce the cost of network operation withsurvivability.

SUMMARY OF THE INVENTION

The present invention is a method and apparatus for increasing thecapability of a network topology model having a plurality of nodesconnected by existing links to maintain service continuity in thepresence of faults. The steps of the method of the invention includeadding new links to the network topology model to protect against singlenode failures, and adjusting link weights for the network topology modelto reduce at least one of cost of network operation, and an imbalance inlink utilizations. The link weights are preferably adjusted to reducethe imbalance in link utilizations without deteriorating the cost ofnetwork operation. The link weights can also be adjusted to reduce thecost of network operation without increasing the imbalance in linkutilizations. The link weights are preferably adjusted to reduce thecost of network operation without increasing the imbalance in linkutilizations while keeping the utilization for each link below aspecific threshold. In addition, links can be added to the networktopology model to reduce the cost of network operation.

The present invention similarly includes an article of manufacture forincreasing the capability of a network topology model having a pluralityof nodes connected by existing links to maintain service continuity inthe presence of faults. The article includes a machine readable mediumcontaining one or more programs which when executed implement the methodof the invention.

The present invention assists network administrators in evaluating the“cost of survivability” for network topologies belonging to bothcommercial and educational Internet Service Providers (ISPs). The “costof survivability” is defined as the ratio of the costs of networkoperation with and without survivability requirements. The evaluation isperformed for traditional Open Shortest Path First (OSPF) recovery aswell as Multiprotocol Label Switching (MPLS) explicit routing basedlocal recovery and end-to-end (E2E) recovery. The traditional OSPFrecovery is based on calculating new shortest paths from a node to allthe destinations in the changed topology. The MPLS explicit routinglocal recovery is based on local re-tunneling of the affected trafficaround the failed node. The MPLS E2E recovery is based on switching theaffected traffic to a different end-to-end backup path, which is nodedisjoint with the original path.

Similar to the findings of several other studies, the application of thepresent invention has determined that the cost of survivabilityassociated with MPLS local recovery can be significantly higher thanthat of MPLS E2E recovery. J. Anderson, B. Doshi, S. Dravida, and P.Harshavardhana, “Fast Restoration of ATM Networkss,” IEEE Journal onSelected Areas in Communications, vol. 12, no. 1, pp. 128-138, January1994; R. Kawamura, K. Sato, and I. Tokizawa, “Self-healing ATM NetworksBased on Virtual Path Concept,” IEEE Journal on Selected Areas inCommunication, vol. 12, no. 1, pp. 120-127, January 1994; K. Murakamiand H. Kim, “Optimal Capacity and Flow Assignment for Self-Healing ATMNetworks Based on Line and End-To-End Restoration,” IEEE/ACMTransactions on Networking, vol. 6, no. 2, pp. 207-221, April 1998; R.Iraschko, M. MacGregor, and W. Grover, “Optimal Capacity Placement forPath Restoration in STM or ATM Mesh Survivable Networks,” IEEE/ACMTransactions on Networking, vol. 6, no. 3, pp. 325-336, June 1998; YXiong and L. Mason, “Restoration Strategies and Spare CapacityRequirements in Self-Healing ATM Networks,” IEEE/ACM Transactions onNetworking, vol. 7, no. 1, pp. 98-110, February 1999; S. Ramamurthy andB. Mukherjee, “Survivable WDM Mesh Networks, Part 1—Protection,” inProc. INFOCOM'1999, 1999; B. V Caenegem, W. V. Parys, F. D. Turck, andP. M. Demeester, “Dimensioning of Survivable WDM Networks,” IEEE Journalon Selected Areas in Communication, vol. 16, no. 7, pp. 1146-1157,September 1998. In addition, the present invention has determined thatthose MPLS E2E recovery schemes that are based on shortest path routingdo not necessarily result in a lower cost of survivability than OSPFrecovery. The present invention has also revealed that the cost ofsurvivability is essentially determined by the topologicalcharacteristics and is not significantly influenced by the variations inthe traffic matrix.

The present invention assesses ways to reduce the cost of networkoperation for survivability. Since the cost is determined by therequired link capacities, which in turn are determined by the trafficroutes, the cost of network operation for survivability can besignificantly reduced by adjusting the traffic routes in an intelligentmanner. Traditional OSPF routing, as well as shortest path-basedexplicit routing schemes, depend directly or indirectly on static linkweights to make routing decisions. Adjusting link weights provides anatural handle to reduce the cost of network operation. Often, owing tosparse connectivity in the network, there are only a few choices forpossible routes, and in such scenarios weight adjustments may not offersignificant savings.

Since network topologies and link loads typically have certain nodepairs that act as transit points for large fractions of total networktraffic and are connected via multiple long distance hops, addition ofnew links in the topology to enable such node pairs to be directlyconnected can reduce the capacity requirements at other linkssignificantly. The present invention examines the effectiveness of linkadditions, weight adjustments, and the combination of link additions andweight adjustments in terms of reducing the cost of network operationfor survivability. The present invention also examines the benefits oflink weight adjustments and link additions even if there is asignificant change in the network traffic matrix.

Finally, the present invention also examines the relationship betweenthe cost of network operation for survivability and load balancing.Traffic engineering has traditionally been associated with loadbalancing i.e., adjusting the routes so that traffic loads move fromhighly utilized links to links with lower utilization. Link weightadjustments have been identified as a practical and effective means ofachieving better balance in link utilizations. B. Fortz and M. Thorup,“Internet Traffic Engineering by Optimizing OSPF Weights,” Proc.INFOCOM'2000, 2000; B. Fortz, J. Rexford, and M. Thorup, “TrafficEngineering with Traditional IP Routing Protocols,” IEEE CommunicationsMagazine, pp. 118-124, October 2002; B. Fortz and M. Thorup, “OptimizingOSPFLISIS weights in a Changing World,” IEEE Journal on Selected Areasin Communications, vol. 20, no. 4, pp. 756-767, May 2002; Y Wang, Z.Wang, and L. Zhang, “Internet Traffic Engineering Without Full MeshOverlaying,” Proc. INFOCOM'2001, 2001.

However, the present invention has also determined that the routechanges performed during load balancing operations can significantlyincrease the cost of network operation for survivability. Moreover, apreviously failure-resistant network might become susceptible tofailures as a result of route changes done to achieve a better balanceamong link loads. Similarly, the route changes designed to reduce thecost of network operation for survivability can significantlydeteriorate the load balance. Preferred embodiments of the presentinvention account for the non-complementary nature of load balancing andthe cost reducing route adjustments.

For a better understanding of the present invention, reference is madeto the following description to be taken in conjunction with theaccompanying drawings and its scope will be pointed out in the appendedclaims.

BRIEF DESCRIPTION OF THE DRAWINGS

Preferred embodiments of the invention have been chosen for purposes ofillustration and description and are shown in the accompanying drawings,wherein:

FIGS. 1A and 1B are a flowchart illustrating a process of adding newlinks to a network topology model having a plurality of nodes connectedby existing links to achieve protection against single node failures forOpen Shortest Path First (OSPF) and Multiprotocol Label Switching (MPLS)based local recovery;

FIG. 2 is a flowchart illustrating a process of adjusting link weightsfor a network topology model having a plurality of nodes connected bylinks to reduce the cost of network operation;

FIGS. 3A and 3B are a flowchart illustrating a process of adding linksto a network topology model having a plurality of nodes connected byexisting links to reduce the cost of network operation;

FIG. 4 is a flowchart illustrating a process of adjusting link weightsin a network topology model having a plurality of nodes connected bylinks to reduce an imbalance in link utilizations;

FIGS. 5A and 5B are a flowchart illustrating a process of adjusting linkweights in a network topology model having a plurality of nodesconnected by links to reduce an imbalance in link utilizations withoutdeteriorating the cost of network operation;

FIGS. 6A and 6B are a flowchart illustrating a process of adjusting linkweights in a network topology model having a plurality of nodesconnected by links to reduce the cost of network operation withoutincreasing an imbalance in link utilizations; and

FIGS. 7A and 7B are a flowchart illustrating the process of adjustinglink weights to reduce the cost of network operation without increasingthe imbalance in link utilizations while keeping the utilization foreach link below a specific threshold.

DETAILED DESCRIPTION OF THE INVENTION I. Introduction

The present invention is a tool for network administrators to analyzeand assess the capability of existing and proposed network topologies tomaintain service continuity in the presence of faults. In order to usethe invention, the network administrator will initially obtain relevantparameters regarding the existing or proposed network topology togenerate a model of the topology for analysis. That is, once theparameters of the network topology are obtained for analysis, theinvention works off-line on a model of the network topology. The networktopology parameters can generally be obtained from a network topologyserver or database, or could be entered manually as well.

The steps of the method of the invention include adding new links to thenetwork topology model to protect against single node failures, andadjusting link weights for the network topology model to reduce at leastone of a cost of network operation and an imbalance in linkutilizations. In a preferred embodiment of the invention, the linkweights are adjusted to reduce the imbalance in link utilizationswithout deteriorating the cost of network operation. In anotherpreferred embodiment of the invention, the link weights are adjusted toreduce the cost of network operation without increasing the imbalance inlink utilizations. In another preferred embodiment of the invention, thelink weights are adjusted to reduce the cost of network operationwithout increasing the imbalance in link utilizations while keeping theutilization for each link below a specific threshold. In addition, linkscan be added to the network topology model to reduce the cost of networkoperation. Each of the embodiments of the invention are discussed indetail below.

II. Connectivity and Cost of Survivability

Link and node failures constitute the two main types of network failuresthat are typically observed in a service provider network. C. Labovitz,A. Ahuja, and F. Jahanian, “Experimental Study of Internet Stability andWide-Area Backbone Failures,” Proc. FTCS'1999, 1999. The link failurescan be caused by either the interface failures in a router orcable/fiber cuts. The node failures can be associated with either thefailure of a single router or a complete point-of-presence (PoP), thatis, a group of access and core routers located in the same facility.Protection from a single router failure also provides protection againstsingle link failures. In this section, the “cost of survivability”associated with different protection mechanisms for protection againstsingle node failures is defined along with a method for adding links tothe network topology to protect against single node failures.

The survivability analysis in accordance with the present invention wasdeveloped based on the examination of 28 real network topologies used asthe IP backbones by commercial and educational Internet ServiceProviders (ISPs). The inventors observed that most of the topologieswere not connected well enough to provide both primary and node-disjointbackup paths for all the flows (i.e. traffic flowing between a givensource-destination pair) for MPLS end-to-end (E2E) recovery. Poorconnectivity also led to network partitions in case of several singlenode failures. In order to make the topologies single node failureproof, the inter-connectivity among the nodes in the topology requiredenhancement. For MPLS E2E recovery, this can be achieved by addingrandomly selected new links to the network topologies. For OSPFrecovery/MPLS local recovery, new links can be added between neighborsof the node whose failure will cause a network partition. Themethodology for adding links to ensure survivability against single nodefailures is explained in detail below.

Referring to FIGS. 1A and 1B, a flowchart illustrating the process ofadding new links to a network topology model to achieve protectionagainst single node failures for OSPF and MPLS based local recovery inaccordance with the present invention is depicted. The process initiallyadds new links to the network topology as depicted by the steps shownbetween flowchart identifiers 100 and 128. The process then removes thenew added links that are not required to achieve single node failureprotection to the network topology as depicted by the steps shownbetween flowchart identifiers 130 and 152.

Referring to the portion of FIG. 1A between flowchart identifiers 100and 128, the initial steps 100, 102, 104 initialize parameters N, R, andi for processing where: N represents the total number of the pluralityof nodes in the network topology; R is a counter that represents thenumber of initially retained new links; and i corresponds to a nodenumber assigned to each of the N number of nodes. The next step 106 isto fail one of the plurality of nodes in the network topology. A firstnumber of disconnected node pairs, D_(i) is calculated at step 108 forfailed node i. If there are no disconnected node pairs (D_(i)=0), thenthe node number is incremented at step 126 to process the next node.Otherwise, a pair of nodes which neighbor the failed node are selected,and a new link is added between the pair of nodes.

A second number of disconnected node pairs, D_(link), is calculated atstep 116 while the topology has the additional link. If the secondnumber of disconnected node pairs, D_(link), is less than the firstnumber, D_(i), the new link is retained at step 124, and the processingparameters R and i are incremented at steps 122, 126 and the firstnumber of disconnected node pairs, D_(i) is set equal to the secondnumber of disconnected node pairs, D_(link), at step 125. As analternative to setting the first number of disconnected node pairs,D_(i), equal to the second number of disconnected node pairs, D_(link),125, the processing could be returned to recalculate the first number ofdisconnected node pairs, D_(i) at step 108. If the second number ofdisconnected node pairs, D_(link), is not less than the first number,D_(i), the new link is removed at step 120 and the processing returns torandomly select a new pair of nodes which neighbor the failed node atstep 112. The process of randomly selecting combination of pair of nodesis repeated until the first number of disconnected node pairs, D_(i),equals zero at step 110. Once the first number of disconnected nodepairs, D_(i), equals zero for a failed node i, the node number i isincremented at step 126 to repeat the addition of links for each nodeuntil all of the nodes have been processed 128.

Referring to the portion of FIG. 1B between flowchart identifiers 130and 152, step 132 initializes parameter j for processing where jcorresponds to a retained link number assigned to each of the R numberof retained links. The next step is to remove one of the plurality ofretained links, link (j), in the modified network topology at step 134.The removed link, link (j), will be restored 144 when the removal causesany node pair to become disconnected for any single node failure. Thedisconnection node condition is analyzed by failing node i at step 138and calculating the number of disconnected node pairs, D_(i), at step140. If the number of disconnected node pairs is greater than zero forany node i, the link (j) is restored 144 and the next link (j+1) isprocessed at step 150. Otherwise, the process is repeated for each nodevia the loop defined by steps 146, 148. The processing is repeated foreach of the plurality of retained new links in the modified networktopology until j is greater than R in step 152.

After modifying a network topology to ensure survivability againstsingle node failures, the cost of survivability in terms of the extracapacity requirements needs to be considered. The cost of networkoperation is influenced by a number of parameters including the initialinvestment required in establishing nodes/links (capital expenditure)and the continuing expenditures involved in maintaining the network(operational expenditures). Since most of the capital expenditure hasalready been incurred in existing IP backbone networks, the presentinvention focuses on reducing the operational expenditure of thenetworks in considering the survivability requirements. In the absenceof a generally applicable and sophisticated operational expendituresmodel, the present invention employs a simple model for operationalexpenditures incurred in a network.

In the model, the continuing cost of network operation primarilyconsists of the cost of operating the links, i.e., the cost of leasingcapacity for the backbone links over underlying fiber networks. Whilecalculating the cost of network operation, it is important to considerboth the capacity required on a link to accommodate all the trafficcoming its way for all possible failure scenarios, as well as thecharacteristics of the link such as the distance spanned by the link.For example, a trans-continental link between Los Angeles and New YorkCity is potentially more expensive than a much shorter link of the samecapacity between Washington D.C. and New York City. A number of suchconsiderations may determine the actual cost of the capacity required ona link. In the model, the distance spanned by the link is a scalingfactor for the cost of the link:

link cost=required link capacity×link distance  (1)

While the actual distance traversed by a link depends on the underlyingfiber network, a rough estimate can be obtained by calculating thegeographical distance between the end nodes using their latitude andlongitude values. The required capacity on a link in a given scenariocan be estimated as the sum of the average traffic load of all the“flows” (i.e., traffic belonging to a particular source-destinationpair) passing through the link. It has been determined with packet levelsimulations that, when the number of flows passing through a link islarge enough (about 20 or more) statistical multiplexing ensures that alink capacity equal to the sum of average traffic loads of all the flowsis sufficient to accommodate the variations in the traffic load ofindividual flows even for very bursty traffic load distributions.Therefore, the required capacity on a link for protection against allsingle node failures is the maximum of the capacities required on thelink for different failure scenarios, as well as for failure freeoperation.

The overall cost of network operation for a network topology iscalculated as follows:

$\begin{matrix}{{{cost}\left( {{network}{\mspace{11mu} \;}{topology}} \right)} = {\sum\limits_{\forall_{i}}{{required}\mspace{14mu} {link}\mspace{14mu} {capacity}_{i} \times {distance}_{i}}}} & (2)\end{matrix}$

where i is a link in the network. The cost of survivability iscalculated as the ratio of the cost of network operation, defined above,with and without the protection against failures as follows:

$\begin{matrix}{{surv\_ cost} = \frac{{cost}_{protection}}{{cost}_{{no}\_ {protection}}}} & (3)\end{matrix}$

The term surv_cost refers to the cost of survivability, defined above,for protection against single node failures and the termcost_(protection) refers to the cost of network operation (as defined inEquation 2) for protection against single node failures.

III. Reducing the Cost of Network Operation for Survivability

The cost of network operation for survivability (cost_(protection)),defined in Equation 2, can be reduced by controlling the traffic routesso that less traffic flows over high cost links. This can be achievedeither via link weight adjustments or by adding new links to thetopology. Link weight adjustments can be used to make low cost (i.e.short distance) links more attractive to the traffic than high cost(i.e. long distance) links. However, because the network topology may besparsely connected, often long and circuitous routes are the onlypossible choices. In such scenarios, link weight adjustments may not beuseful. Careful introduction of a few new links to the topologyproviding direct connections between key transit points cansignificantly reduce the overall cost of network operation.

Changes to the traffic routes can possibly alter the survivabilitycharacteristics of the topology. That is, a previously failure-prooftopology might become susceptible to failures after modification. Theweight adjustment and link addition processes preferably includeprecautions against such occurrences. In particular, the survivabilitycharacteristics of a network topology can be defined as a metric, SC(network topology), which is considered to have deteriorated after alink weight change when a failure in the network causes a node pair tobecome disconnected after the weight change while that node pair was notdisconnected for the same failure event before the weight change. The SC(network topology) metric can be defined as a 3-dimensional (n×n×n)boolean array where n equals the number of nodes in the networktopology. A particular element of this array (i, j, k) has value 0(false) if the failure of node ‘i’ leaves nodes ‘j’ and ‘k’disconnected. Otherwise the element (i,j,k) has value 1 (true). The ‘<’relation between survivability characteristics of two network topologiesA and B can defined as follows: SC(A)<SC(B) if (i, j, k)_(A)=0 and (i,j, k)_(B)=1 for some value of ‘i’, ‘j’ and ‘k’. Here (i, j, k)_(A) is anelement of SC(A) whereas (i, j, k)_(B) is the corresponding element ofSC(B). In particular, there is a possibility that the survivabilitycharacteristics of a network topology may deteriorate after a linkweight change for MPLS E2E recovery-based topologies. Accordingly, theweight adjustment for MPLS E2E recovery-based topologies is preferablyonly made permanent when the survivability characteristics of a networktopology have not deteriorated.

The adjustment of link weights in order to reduce the cost of networkoperation is preferably performed using a heuristic based local search.The heuristic used in the search is to increment the weight of thecostliest link so as to make it less attractive for use in eitherprimary or backup paths. In this regard, the cost of a link iscalculated using Equation 1. In each iteration of the local search, thelink with the maximum cost is identified and its weight is increased.The weight increment is preferably a unit amount. The weight adjustmentis made permanent if it results in lowering the cost_(protection) value.Otherwise, the link weight adjustment is undone and the link is “marked”so that no further attempts are made to modify its weight in a futureiteration. The search process ends when all the links in the topologyhave been marked.

It is possible that increasing the weight of a marked link in a futureiteration may further reduce the cost_(protection) value. However,avoiding such links in the search process helps avoid loops where thesame sequence of link weight adjustments is tried over and over again.

Referring to FIG. 2, a flowchart illustrating the process of adjustinglink weights for a network topology model having a plurality of nodesconnected by links to reduce the cost of network operation in accordancewith the present invention is depicted. The initial steps 200, 202initialize parameters N and i for processing where: N represents thetotal number of links in the network topology and i is a counter fortracking the processing of each link in the network topology. In thenext step 204, all of the links in the network topology are unmarked.Steps 206 and 230, form the main loop for this process where the numberof remaining links, i, to be processed is ascertained. Once the numberof remaining links, i, equals 0 the process stops at step 206.Otherwise, preferably the survivability characteristics of the currenttopology, SC(CT), are determined at step 208. The cost of the networkoperation for the Current Topology, cost (CT), is calculated next atstep 210 and cost_(init) is set equal to the cost of the networkoperation for the Current Topology, cost (CT), at step 212. The weightof unmarked link, L(j), having the maximum cost is incremented next atstep 214 to modify the network topology. The survivabilitycharacteristics of the Modified Topology, SC(MT), are also preferablydetermined at step 216. If the survivability characteristics of thenetwork topology have deteriorated from the weight change ((SC(MT) isless than SC(CT)) 218, then the weight of the link, L(j), is restored atstep 226. Otherwise, the cost of the network operation for the ModifiedTopography, cost (MT), is calculated at step 220, and cost_(new) is setequal to cost (MT) at step 222. If the cost_(new) is greater than orequal to cost_(init) 224, then the weight of the link L(j) is restoredat step 226, the link L(j) is marked at step 228, and the counter i isreduced at step 230 before returning to step 206. Otherwise, theprocessing is returned to step 214 to increment the weight of theunmarked link, L(j).

In addition to incrementing the weight of the costliest links, thepresent invention includes: increasing the weight of the costliest linkby more than a unit amount, increasing the weights of multiple high costlinks simultaneously, decrementing the weights of one or more low costlinks so as to make them more attractive, and adjusting the weights suchthat a high (low) cost link and a low (high) cost path connecting theends of the high (low) cost link have the same weight. Many othersimilar heuristics are possible. However, the heuristics involving theweight adjustment of multiple links at a time in each step orsignificant change in the weight of a link are not preferred. This isbecause more than a small change in the link weight distribution cansignificantly alter the traffic distribution on the links in verycomplex ways. Hence the simple heuristics involving only a small changeat a time perform better than others.

Referring to FIGS. 3A and 3B, a flowchart illustrating the process ofadding links to a network topology model having a plurality of nodesconnected by existing links to reduce the cost of network operation inaccordance with the present invention is depicted. The process of addingnew links to the topology begins with identifying a pool of potentialnew links and temporarily adding them to the topology. The potential newlinks are identified using an iterative process where in each iterationthe link whose addition will lead to maximum reduction in the currentcost_(protection) value is selected. Once all the potential new linkshave been identified and added to the topology, the least useful linksamong them are eliminated one by one until only the desired number ofnew links remain in the topology. While a good size for the pool ofpotential links and the optimal number of new links to be added dependson the existing topology, preferred initial ranges for practicing theinvention include the addition of about 5 to 15% more new links basedupon an initial potential new link pool size of about 80 to 120% of theoriginal number of links in the existing topology.

Referring to the portion of FIGS. 3A and 3B between flowchartidentifiers 300 and 346, the initial steps 300, 302 and 304 initializeparameters N_(e), L_(e)(i, j), and x. N_(e) represents the total numberof nodes in the existing topology and L_(e) (i, j) corresponds to anarray for identifying the links in the existing topology by their nodalconnectivity where i and j represent a node number. The array ispreferably at least a two dimensional array. The values for L_(e) (i, j)are set equal to one where a link exists between nodes i and j, and forlocations in the array where i equals j while all other values in thearray are initially set equal to zero. In step 302, the value of N isset equal to the maximum number of allowed potential new links that willbe considered for addition to the existing topology. In step 304, acounter x is set to 0 where x represents the current amount of newpotential links added to the existing topology.

Steps 306 and 346, define the main loop for adding the new potentiallinks, which continues until N number of links have been added to theexisting topology. Steps 308, 310, 312, and 314 further initialize theloop with parameters i, j, min_cost, and min_cost_link (y, z) forprocessing. The parameters i and j refer to node numbers for identifyinga potential new link, L (i, j), to be added to the existing topology.The min_cost parameter is initially set equal to a very large value(infinity) in step 312, and is used to track the cost associated withthe new potential link that minimizes the cost of network operation atstep 326. The min_cost_link (y, z) tracks the identification of the newpotential link, (L (j), by its nodal coordinates that results in theminimum cost of network operation. In step 316, the algorithm checks todetermine whether there is an existing link between node numbers i and jby determining whether array L_(e) (i, j) has a value that is lessthan 1. If there is an existing link or a potential link has alreadybeen added, the value of L_(e) (i, j) will be greater than or equal to 1and the processing will be forwarded to step 332 for incrementing thenode number corresponding to i. Otherwise, link L (i, j) will be addedto the network topology at step 318, and the cost of network operationfor the Current Topology, cost (CT), will be calculated at step 320. Instep 322, a cost tracking parameter cost_(new) is assigned the value ofcost (CT). If cost_(new) is less than the min_cost at step 324, thenmin_cost is assigned the value of cost_(new) 326 and min_cost_link (y,z) is identified as corresponding to potential link L (i, j). This cangenerally be accomplished by assigning the values of y and z to therespective corresponding values of i and j at step 328.

The new potential link, L (i, j) is then removed from the networktopology for further consideration of other potential new links 330.Steps 332, 334, 336, 338, and 340 increment both i and j so that eachnew potential link is considered in finding the potential link whichresults in the maximum reduction in cost of network operation. Once thelink is identified (j>N_(e) at step 340), the link, min_cost_link (y,z), is added to the network topology as a potential new link at step342. In step 344, the array of links, L_(e) (i, j), value for the newpotential link is set equal to 2. This process continues until x isincremented to equal N representing that N number of new potential linkshave been added to the existing network topology 306, 346.

Referring to the portion of FIG. 3B between flowchart identifiers 348and 386, the least useful potential links are next eliminated from thenetwork topology until only the desired number of new links remain inthe topology. The initial steps 348, 350 and 352 initialize parametersn, i, and j for processing where: n represents the maximum number ofallowed new links to be added to the network topology and i and jidentify node numbers. The main loop of this portion of the algorithmloops between steps 354 and 386, which reduces counter x correspondingto the current number of new links added to the network topology. Oncethe number of new links x has been reduced to be equal to n, theprocessing stops at step 354. Otherwise, processing continues to findthe potential new links that when removed from the current networktopology will result in lowest cost of network operation. The min_costparameter is again initially set to a large number (infinity) at step356 and the min_cost_link (y, z) is initialized as well at step 358. Instep 360, the algorithm ascertains whether a link identified in arrayL_(e) (i, j) is a potential new link. If the value of L_(e) (i, j) isless than or equal to one, the processing increments to the next node374 as there either was no link corresponding to the L_(e) (i, j) or itcorresponded to an existing link. Otherwise, the link, L_(e) (i, j) isremoved from the network topology to calculate the cost of the networkoperation for the Current Topology at step 362 which is assigned toparameter cost_(new), at step 364.

In the next step 366, if cost of the network operation for the CurrentTopology is not less than the value associated with the min_costparameter, then the potential new link L (i, j) is put back into thenetwork topology (L_(e) (i, j) in step 372. Otherwise, the min_costparameter is assigned the cost_(new) value at step 368 and themin_cost_link (y, z) identifier is set to correspond to the currentlyremoved potential link, L (i, j), at step 370. In the next step 372, thelink L (i, j) is placed back into the topology for further considerationin identifying a link that when removed would result in the maximumreduction in the cost of network operation. Steps 374, 376, 378, 380,and 382 define a looping structure for analyzing each of the potentialnew links to identify the link which when removed will result in thelowest value of min_cost. Once the min_cost value is determined (j>N_(e)at step 382), the corresponding link, min_cost_link (y, z), is known andis removed from the topology 384. This process is repeated until thenumber of new potential links is reduced to the maximum number ofallowed new links, n, in the network topology 354, 386.

IV. Load Balancing and the Cost of Network Operations for Survivability

Load balancing in IP networks has traditionally been associated withachieving efficient utilization of network resources by adjusting theroute traffic takes so that traffic loads move from high utilization (orcongested) links to low utilization links. For a given topology andtraffic matrix, a straightforward metric for measuring the degree ofload balance is the standard deviation among link utilization values.The smaller the standard deviation among link utilizations, the betteris the degree of load balance in the network. From a quality of servicepoint of view, it is important that link utilization values do notbecome very high, so that the link can easily accommodate transientincrease in the traffic load. However, a dilemma is encountered when theproblem of load balancing is combined with the problem of reducingcost_(protection). The solutions to both these problems involve trafficroute adjustments, but it can work in a conflicting manner. That is, theroute adjustments designed to reduce the standard deviation among linkutilizations may increase the cost_(protection) (or worse—make thehitherto failure-proof network susceptible to link/node failures) andvice versa.

The iterative weight adjustment process described in Section III-A canbe modified so that the objective is reducing the imbalance in linkutilization values, rather than reducing the cost of survivability.Here, the link utilization is measured as the ratio of the traffic loadon the link during failure-free operation to the required link capacityfor single node failure protection. The modification consists ofincrementing the weight of the most heavily utilized link (rather thanthe costliest link). The weight adjustment will alter the trafficroutes, thereby causing the required link capacities for single nodefailure protection and the load on the links during failure freeoperation to change. The new link utilization values as well as the newvalue of standard deviation among link utilizations are calculated. Theweight adjustment is accepted if it does not make the networksusceptible to single node failures and the new value of standarddeviation among link utilizations is less than the old value.

Referring to FIG. 4, a flowchart illustrating the process of adjustinglink weights for a network topology model having a plurality of nodesconnected by links to reduce an imbalance in link utilizations inaccordance with the present invention is depicted. The initial steps400, 402 initialize parameters N and i for processing where: Nrepresents the total number of links in the network topology and i is acounter for tracking the processing of each link in the networktopology. The next step 404 unmarks all of the links in the networktopology. Steps 406 and 430 form the main loop, with the number ofremaining links, i, to be processed being considered at step 406. Oncethe number of remaining links, i, equals 0, the process stops at step406. Otherwise, preferably the survivability characteristics of thecurrent topology, SC(CT), are determined at step 408. The standarddeviation of the link utilizations for the Current Topology, stddev(CT), is calculated next at step 410 and stddev_(init) is set equal tothe standard deviation of the network operation for the currenttopology, stddev (CT), at step 412. The weight of unmarked link, L(j),having the maximum utilization is incremented next at step 414 to modifythe network topology. Preferably the weight of unmarked link, L(j), atstep 414 is incremented by 1.

The survivability characteristics of the Modified Topology, SC(MT), arealso preferably determined at step 416. If the survivabilitycharacteristics of the network topology have deteriorated from theweight change ((SC(MT) is less than SC(CT)) 418, then the weight of thelink, L(j), is restored at step 426. Otherwise, the standard deviationof the link utilizations for the Modified Topology, stddev (MT), iscalculated at step 420, and stddev_(new) is set equal to stddev (MT) atstep 422. If the stddev_(new) is greater than or equal to stddev_(init)at step 424, then the weight of the link L(j) is restored at step 426,the link L(j) is marked at step 428, and the counter i is reduced atstep 430 before returning to step 406. Otherwise, the processing isreturned to step 414 for further incrementing the weight of the unmarkedlink, L(j).

Through experimentation with the present invention, it has been observedthat weight adjustments performed for one objective may not complimentanother objective. In particular, weight adjustments designed to reducestandard deviation in link utilizations can indeed be effective, but mayincrease the cost of network operation. In addition, the weightadjustments designed to reduce the cost of network operation mayincrease the standard deviation among link utilizations significantly insome cases.

The present invention also includes a two step weight adjustment processto achieve both goals simultaneously. The first step in this processconsists of adjusting link weights so as to reduce the cost_(protection)without deteriorating the degree of load balancing. The second stepconsists of weight adjustments so as to improve the load balancingwithout increasing the cost_(protection) on the topology obtained afterthe first step.

Since the weight adjustments can generally achieve either better loadbalance or reduced cost_(protection), and generally not both, preferablya choice is made regarding the main objective for weight adjustments. Abetter balance in link utilizations can also be achieved by increasingthe capacity of highly utilized links. Hence, minimizing thecost_(protection) without deteriorating the degree of load balancing isan appropriate objective for the weight adjustments. Once the linkweights have been adjusted so as to achieve the maximum possiblereduction in the cost_(protection) without deteriorating the degree ofload balance, the link capacities can then be increased so that all thelink utilizations are below a threshold value. Increasing the linkcapacities will necessarily increase the cost_(protection). However, theresulting increase in the cost_(protection) might be less than thecorresponding increase if load balancing was attempted as the primarygoal of weight adjustments.

Referring to FIGS. 5A and 5B, a flowchart illustrating the process ofadjusting link weights in a network topology model having a plurality ofnodes connected by links to reduce an imbalance in link utilizationswithout deteriorating the cost of network operation in accordance withthe present invention is depicted. The initial steps 500, 502, 504 and506 initialize parameters: N, i, and cost_(init), and unmark all of thelinks in the network topology. The parameter N represents the number oflinks in the network topology while i represents a counter that tracksthe processing of each link in the network topology. In step 504, theinitial cost of network operation for the Current Topology, cost (CT),is calculated and a value is assigned to parameter cost_(init). In step506, all of the links in the network topology are unmarked forprocessing. The main loop of the algorithm is defined by steps 508 and538 where the value of i is decremented at 538 and checked at 508 toensure that each link in the network topology is processed. In step 510,the survivability characteristics of the Current Topology, SC(CT), arepreferably determined. Next in step 512, the standard deviation of thelink utilization for the Current Topology, stddev (CT), is calculatedand the value is assigned to parameter stddev_(init) at step 514. Instep 516, the weight of the unmarked link, L(j), having the maximumutilization associated therewith is incremented to modify the networktopology.

In step 518, the survivability characteristics of the Modified Topology,SC (MT), are again preferably determined. In step 520, the survivabilitycharacteristics of the Current Topology and the Modified Topology arecompared. If the survivability characteristics have deteriorated fromthe weight change, the processing is forwarded to restore the weight ofthe link L (j) at step 534. Otherwise, the cost of network operation forthe Modified Topology, cost (MT), is calculated at step 522, and thevalue is assigned to parameter cost_(new), at step 524. In step 526, ifthe cost_(new) is greater than or equal to the initial cost of networkoperation, cost_(init), then the processing proceeds to step 534 torestore the weight of link L(j). Otherwise, the standard deviation ofthe link utilizations for the Modified Topology, stddev (MT), iscalculated and the value is assigned to stddev_(new) at step 530. Instep 532, the standard deviation of the link utilizations for themodified topology, stddev_(new), is compared against the standarddeviation of the link utilizations for the Current Topology,stddev_(init). If the standard deviation of the link utilizations hasincreased as a result of the weight change, the weight of the link L(j)is restored at step 534, and the link L(j) is marked at step 536 and theprocessing returns to step 508 for processing the next unmarked link,L(j) having the maximum cost associated therewith. Otherwise, theprocessing at step 532 will return to step 516 for the furtherincrementing of the weight of the link L(j).

Referring to FIGS. 6A and 6B, a flowchart illustrating the process ofadjusting link weights in a network topology model having a plurality ofnodes connected by links to reduce the cost of network operation withoutincreasing an imbalance in link utilizations in accordance with thepresent invention is depicted. The initial steps 600, 602, 604 and 606initialize parameters: N, i, and stddev_(init), and unmark all of thelinks in the network topology. The parameter N represents the number oflinks in the network topology while i represents a counter that tracksthe processing of each link in the network topology. In step 604, theinitial standard deviation in the link utilization for the CurrentTopology, stddev (CT), is calculated and a value is assigned toparameter stddev_(init). In step 606, all of the links in the networktopology are unmarked for processing. The main loop of the algorithm isdefined by steps 608 and 638 where the value of i is decremented at 638and checked at 608 to ensure that each link in the network topology isprocessed. In step 610, the survivability characteristics of the CurrentTopology, SC(CT), are preferably determined. Next in step 612, the costof the network operation for the Current Topology, cost (CT), iscalculated and the value is assigned to parameter cost_(init) at step614. In step 616, the weight of the unmarked link, L(j) having themaximum cost associated therewith is incremented to modify the networktopology. In step 618, the survivability characteristics of the ModifiedTopology, SC(MT), are preferably again determined.

In step 620, the survivability characteristics of the Current Topologyand the Modified Topology are compared. If the survivabilitycharacteristics have deteriorated from the weight change, the processingis forwarded to restore the weight of the link L(j) at step 634.Otherwise, the standard deviation of the link utilization for theModified Topology, stddev (MT), is calculated at step 622, and the valueis assigned to parameter stddev_(new) at step 624. In step 626, if thestddev_(new) is greater than or equal to the initial standard deviationof the link utilization, stddev_(init), then the processing proceeds tostep 634 to restore the weight of link L(j). Otherwise, the cost ofnetwork operation for the Modified Topology, cost (MT), is calculatedand the value is assigned to cost_(new) at step 630. In step 632, thecost of network operation for the Modified Topology, cost_(new) iscompared against the cost of network operation for the Current Topology,cost_(init). If the cost of network operation has increased as a resultof the weight change, the weight of the link L(j) is restored at step634, the link L(j) is marked at step 636, and the processing returns tostep 608 for processing the next unmarked link, L(j), having the maximumcost associated therewith. Otherwise, the processing at step 632 willreturn to step 616 for the further incrementing of the weight of thelink L(j).

Referring to FIGS. 7A and 7B, a flowchart illustrating the process ofadjusting link weights to reduce the cost of network operation withoutincreasing the imbalance in link utilizations while keeping theutilization for each link below a specific threshold in accordance withthe present invention is depicted. The portion of the flowchartillustrating the process of adjusting link weights in a network topologymodel having a plurality of nodes connected by links to reduce the costof network operation without increasing an imbalance in linkutilizations has been described above in connection with FIGS. 6A and 6Band accordingly the same flowchart identifiers 600 through 638 have beenrelisted in FIGS. 7A and 7B. The current flowchart includes anadditional loop between steps 700 and 708 to increase the linkcapacities so that no link utilization exceeds a specified value.

Referring to FIG. 7B, the initial step 700 re-initializes parameter ifor tracking the processing of each link in the network topology. Theloop of the algorithm is defined by steps 702 and 708 where the value ofi is decremented at 708 and checked at 702 to ensure that each link inthe network topology is processed. In step 704, The link utilization oflink i, L_(u)(i), is checked against a specified threshold. If the linkutilization, L_(u)(i), is greater than the specified threshold, the linkcapacity of the link, L(i), is increased so that the link utilization,L_(u)(i), falls below the specified threshold in step 706. A preferredrange for setting the specified threshold is about 0.6 to 0.9, and ismost preferably about 0.7. Otherwise, the processing is forwarded tostep 708 for processing the next link.

The present invention can be implemented using a conventional generalpurpose digital computer or microprocessor programmed according to theteachings of the present specification, as will be apparent to thoseskilled in the computer art. Appropriate software coding can readily beprepared by skilled programmers based on the teachings of the presentdisclosure, as will be apparent to those skilled in the software art.

The present invention includes a computer program product, which is astorage medium including instructions that can be used to program acomputer to perform processes of the invention. The storage medium caninclude, but is not limited to, any type of disk including floppy disks,optical discs, Compact Disk Read Only Memory (CD-ROMs), and magneticdisks, Read-Only Memory (ROMs), Random-Access Memory (RAMs),Electrically Programmable Read-Only Memory (EPROMs), ElectricallyEraseable Programmable Read-Only Memory (EEPROMs), magnetic or opticalcards, or any type of media suitable for storing electronicinstructions.

Stored on any one of the above described storage media (computerreadable media) the present invention includes programming forcontrolling both the hardware of the computer and for enabling thecomputer to interact with a human user. Such programming may include,but is not limited to, software for implementation of device drivers,operating systems, and user applications. Such computer readable mediafurther includes programming or software instructions to direct thegeneral purpose computer to perform tasks in accordance with the presentinvention.

The invention may also be implemented by the preparation of applicationspecific units, such as integrated circuits (ASIC) or by interconnectingan appropriate network of conventional circuit components, as will bereadily apparent to those skilled in the art.

Thus, while there have been described what are presently believed to bethe preferred embodiments of the invention, those skilled in the artwill realize that changes and modifications may be made thereto withoutdeparting from the spirit of the invention, and it is intended to claimall such changes and modifications as fall within the true scope of theinvention.

1. A method for adding links to a network topology model having aplurality of nodes connected by existing links to reduce the cost ofnetwork operation, the method comprising the steps of: (a) selecting amaximum number of potential links to be added to the network topology;(b) selecting a maximum number of new links to be added to the networktopology; (c) finding a potential link that when added to the currentnetwork topology will result in a maximum reduction in the cost ofnetwork operation; (d) adding the potential link to the current networktopology; (e) repeating steps (c) and (d) until the maximum number ofpotential links have been added to the current network topology; findingthe potential link that when removed from the current network topologywill result in the lowest cost of network operation; (g) removing thepotential link from the current network topology; (h) repeating steps(f) and (g) until the maximum number of potential links is reduced tothe maximum number of new links to be added to the network topology,wherein the removal of the potential link in step (g) is performed toreduce the cost of network operation without increasing an imbalance inlink utilization.
 2. A method for adding links to a network topologymodel as defined in claim 1, further comprising adjusting link weightsfor the current network topology model to reduce at least one of a costof network operation and an imbalance in link utilization.
 3. A methodfor adding links to a network topology model as defined in claim 2,wherein adjusting link weights for the current network topology modelincludes: (1) unmarking each link in the network topology; (2)calculating a network cost for operating the current network topologybased upon a link cost associated with the each link; (3) incrementingthe weight of one of the each link in the current network topologyhaving the maximum link cost to modify the network topology; (4)calculating a network cost for operating the modified network topology;(5) restoring the weight and marking one of the each link having themaximum link cost when the network cost for operating the modifiednetwork topology is greater than or equal to the network cost foroperating the current network topology; and (6) repeating sub-steps (2)through (5) until the each link in the network topology is marked.
 4. Amethod for adding links to a network topology model as defined in claim3, wherein: the sub-step (2) further comprises determining survivabilitycharacteristics of the current network topology; the sub-step (4)further comprises determining the survivability characteristics of themodified network topology; and the sub-step (5) further comprisesrestoring the weight and marking the link having the maximum link costis performed when at least one of: the survivability characteristics ofthe modified network has deteriorated in comparison to the survivabilitycharacteristics of the current network topology; and the network costfor operating the modified network topology is greater than or equal tothe network cost for operating the current network topology.
 5. A methodfor adding links to a network topology model as defined in claim 1,further comprising determining survivability characteristics of thecurrent network topology.
 6. A method for adding links to a networktopology model as defined in claim 1, further comprising restoring theremoved potential link if the removal causes any node pair to becomedisconnected for any single node failure.
 7. An apparatus for addinglinks to a network topology model having a plurality of nodes connectedby existing links to reduce the cost of network operation, the apparatuscomprising: a network topology analyzing unit configured to: (a) selecta maximum number of potential links to be added to the network topology;(b) select a maximum number of new links to be added to the networktopology; (c) find a potential link that when added to the currentnetwork topology will result in a maximum reduction in the cost ofnetwork operation; (d) add the potential link to the current networktopology; (e) repeat steps (c) and (d) until the maximum number ofpotential links have been added to the current network topology; (f)find the potential link that when removed from the current networktopology will result in the lowest cost of network operation; (g) removethe potential link from the current network topology; (h) repeat steps(f) and (g) until the maximum number of potential links is reduced tothe maximum number of new links to be added to the network topology;wherein the removal of the potential link in step (g) is performed toreduce the cost of network operation without increasing an imbalance inlink utilizations.
 8. An apparatus d for adding links to a networktopology model as defined in claim 7, wherein the network topologyanalyzing unit adjusts link weights for the current network topologymodel to reduce at least one of a cost of network operation, and animbalance in link utilizations.
 9. An apparatus for adding links to anetwork topology model as defined in claim 8, wherein adjusting linkweights for the current network topology model by the network topologyanalyzing unit comprises: (1) unmarking each link in the networktopology; (2) calculating a network cost for operating the currentnetwork topology based upon a link cost associated with the each link;(3) incrementing the weight of one of the each link in the currentnetwork topology having the maximum link cost to modify the networktopology; (4) calculating a network cost for operating the modifiednetwork topology; (5) restoring the weight and marking one of the eachlink having the maximum link cost when the network cost for operatingthe modified network topology is greater than or equal to the networkcost for operating the current network topology; and (6) repeatingsub-steps (2) through (5) until the each link in the network topology ismarked.
 10. An apparatus for adding links to a network topology model asdefined in claim 9, wherein: the sub-step (2) further comprisesdetermining survivability characteristics of the current networktopology; the sub-step (4) further comprises determining thesurvivability characteristics of the modified network topology; and thesub-step (5) further comprises restoring the weight and marking the linkhaving the maximum link cost is performed when at least one of: thesurvivability characteristics of the modified network has deterioratedin comparison to the survivability characteristics of the currentnetwork topology; and the network cost for operating the modifiednetwork topology is greater than or equal to the network cost foroperating the current network topology.
 11. An apparatus for addinglinks to a network topology model as defined in claim 7, wherein thenetwork topology analyzing unit determines survivability characteristicsof the current network topology.
 12. An apparatus for adding links to anetwork topology model as defined in claim 7, wherein the networktopology analyzing unit restores the removed potential link when theremoval cause any node pair to become disconnected for any single nodefailure.
 13. A computer-readable storage medium comprising instructionsfor adding links to a network topology model having a plurality of nodesconnected by existing links to reduce the cost of network operationthat, when executed by a processing device, cause the processing deviceto: (a) select a maximum number of potential links to be added to thenetwork topology; (b) select a maximum number of new links to be addedto the network topology; (c) find a potential link that when added tothe current network topology will result in a maximum reduction in thecost of network operation; (d) add the potential link to the currentnetwork topology; (e) repeat steps (c) and (d) until the maximum numberof potential links have been added to the current network topology; (f)find the potential link that when removed from the current networktopology will result in the lowest cost of network operation; (g) removethe potential link from the current network topology; (h) repeat steps(f) and (g) until the maximum number of potential links is reduced tothe maximum number of new links to be added to the network topology,wherein the removal of the potential link in step (g) is performed toreduce the cost of network operation without increasing an imbalance inlink utilization.
 14. A computer-readable storage medium as defined inclaim 13, comprising instructions for adding links to a network topologymodel having a plurality of nodes connected by existing links to reducethe cost of network operation that, when executed by a processingdevice, cause the processing device to adjust link weights for thecurrent network topology model to reduce at least one of a cost ofnetwork operation, and an imbalance in link utilizations.
 15. Acomputer-readable storage medium as defined in claim 14, comprisinginstructions for adding links to a network topology model having aplurality of nodes connected by existing links to reduce the cost ofnetwork operation that, when executed by a processing device, cause theprocessing device to: (1) unmark each link in the network topology; (2)calculate a network cost for operating the current network topologybased upon a link cost associated with the each link; (3) increment theweight of one of the each link in the current network topology havingthe maximum link cost to modify the network topology; (4) calculate anetwork cost for operating the modified network topology; (5) restorethe weight and marking one of the each link having the maximum link costwhen the network cost for operating the modified network topology isgreater than or equal to the network cost for operating the currentnetwork topology; and (6) repeat sub-steps (2) through (5) until theeach link in the network topology is marked.
 16. A computer-readablestorage medium as defined in claim 15, comprising instructions foradding links to a network topology model having a plurality of nodesconnected by existing links to reduce the cost of network operationthat, when executed by a processing device, cause the processing deviceto: determine survivability characteristics of the current networktopology in sub-step (2); determine the survivability characteristics ofthe modified network topology in sub-step (4) further; and restore theweight and marking the link having the maximum link cost in sub-step (5)if at least one of: the survivability characteristics of the modifiednetwork has deteriorated in comparison to the survivabilitycharacteristics of the current network topology; and the network costfor operating the modified network topology is greater than or equal tothe network cost for operating the current network topology.
 17. Acomputer-readable storage medium as defined in claim 13, comprisinginstructions for adding links to a network topology model having aplurality of nodes connected by existing links to reduce the cost ofnetwork operation that, when executed by a processing device, cause theprocessing device to determine survivability characteristics of thecurrent network topology.
 18. A computer-readable storage medium asdefined in claim 13, comprising instructions for adding links to anetwork topology model having a plurality of nodes connected by existinglinks to reduce the cost of network operation that, when executed by aprocessing device, cause the processing device to restore the removedpotential link when the removal cause any node pair to becomedisconnected for any single node failure.